local 副本_大闹天宫 = class()

function 副本_大闹天宫:初始化()
end

function 副本_大闹天宫:取任务说明(玩家id, 任务id)
	local NPC = ""

	if 任务数据[任务id].类型 == 180 then
		local 副本id = 任务数据[任务id].副本id

		if 副本数据.大闹天宫.进行[副本id] == nil then
			说明 = {
				"大闹天宫",
				"#您的副本已经结束"
			}
		else
			local 进程 = 副本数据.大闹天宫.进行[副本id].进程

			if 进程 == 1 then
				local NPC1 = 取NPC自动寻路数据("锄树力士", 6031)
				local NPC2 = 取NPC自动寻路数据("运水力士", 6031)
				local NPC3 = 取NPC自动寻路数据("修桃力士", 6031)
				local 完成情况 = {
					"#R(未完成)#",
					"#R(未完成)#",
					"#R(未完成)#"
				}

				if 任务数据[任务id].三大力士.锄树力士 <= 0 then
					完成情况[1] = "#G(已完成)#"
				end

				if 任务数据[任务id].三大力士.运水力士 <= 0 then
					完成情况[2] = "#G(已完成)#"
				end

				if 任务数据[任务id].三大力士.修桃力士 <= 0 then
					完成情况[3] = "#G(已完成)#"
				end

				任务数据[任务id].坐标 = {
					X = 96,
					Y = 44
				}
				说明 = {
					"大闹天宫",
					format("#帮助蟠桃园中的#R%s%s、%s%s、%s%s完成任务。(完成度：%s：%s)", NPC1, 完成情况[1], NPC2, 完成情况[2], NPC3, 完成情况[3], 任务数据[任务id].完成三大力士 or 0, 副本减负.大闹天宫[1] + 副本减负.大闹天宫[2] + 副本减负.大闹天宫[3])
				}
			elseif 进程 == 2 then
				任务数据[任务id].坐标 = {
					X = 96,
					Y = 44
				}
				说明 = {
					"大闹天宫",
					format("#蟠桃园整修一新,竟唤来一阵清风,吹落些许蟠桃,各位请速速前往拾取(当前剩余：%s))", 任务数据[任务id].蟠桃)
				}
			elseif 进程 == 3 then
				任务数据[任务id].坐标 = {
					X = 96,
					Y = 44
				}
				说明 = {
					"大闹天宫",
					format("#恰巧七仙女奉王母之命前来蟠桃园取仙桃,竟然发现大圣你竟然在偷食蟠桃#R(需战斗)#Y(当前剩余：%s))", 任务数据[任务id].七仙女)
				}
			elseif 进程 == 4 then
				local NPC1 = 取NPC自动寻路数据("造酒仙官", 6032)
				local NPC2 = 取NPC自动寻路数据("运水道人", 6032)
				local NPC3 = 取NPC自动寻路数据("烧火童子", 6032)
				local NPC4 = 取NPC自动寻路数据("盘槽力士", 6032)
				任务数据[任务id].坐标 = {
					X = 34,
					Y = 28
				}
				说明 = {
					"大闹天宫",
					format("#蟠桃会已经开始了,你变化为赤脚大仙前往蟠桃会欲要搅闹一番分别与#R%s、%s、%s、%s#对话#R(部分需战斗))", NPC1, NPC2, NPC3, NPC4)
				}
			elseif 进程 == 5 then
				任务数据[任务id].坐标 = {
					X = 23,
					Y = 76
				}
				说明 = {
					"大闹天宫",
					format("#回到花果山的你将蟠桃宴中的美食一一分给饥饿的小猴。#R(剩余：%s)", 任务数据[任务id].饥饿小猴)
				}
			elseif 进程 == 6 then
				任务数据[任务id].坐标 = {
					X = 110,
					Y = 15
				}
				说明 = {
					"大闹天宫",
					format("#玉帝派遣十万天兵天将下界捉你，正与崩芭二将打的难分难舍,见状你急忙前去帮忙。#R(需战斗)")
				}
			elseif 进程 == 7 then
				任务数据[任务id].坐标 = {
					X = 23,
					Y = 76
				}
				说明 = {
					"大闹天宫",
					format("#诸神虽然神通勇猛，但也拿你毫无办法，被一一击退。正在此时，来自普陀山的观音姐姐出现，并带来了两员救兵手下弟子惠岸行者以及二郎真君。#R(需战斗)")
				}
			elseif 进程 == 8 then
				local NPC1 = 取NPC寻路信息(6035, "玉帝", 154, 109)
				任务数据[任务id].坐标 = {
					X = 154,
					Y = 109
				}
				说明 = {
					"大闹天宫",
					format("#艰难的打败了二郎真君，你来到了天宫外欲找玉帝理论一二。#R(需战斗)")
				}
			end
		end
	elseif 任务数据[任务id].类型 == 181 then
		NPC = 取NPC寻路信息(6031, "(" .. 任务数据[任务id].x .. "," .. 任务数据[任务id].y .. ")", 任务数据[任务id].x, 任务数据[任务id].y)
		说明 = {
			"大闹天宫",
			format("#帮助蟠桃园中的#R锄树力士#前往%s处附近进行锄树清草吧！", NPC)
		}
	elseif 任务数据[任务id].类型 == 182 then
		NPC = 取NPC自动寻路数据(任务数据[任务id].目标, 6031)
		说明 = {
			"大闹天宫",
			format("#帮助蟠桃园中的#R浇水力士#前往#R%s#处为其浇水吧！", NPC)
		}
	elseif 任务数据[任务id].类型 == 183 then
		NPC = 取NPC自动寻路数据(任务数据[任务id].目标, 6031)
		说明 = {
			"大闹天宫",
			format("#帮助蟠桃园中的#R修桃力士#前往#R%s#处修整蟠桃树吧！", NPC)
		}
	end

	return 说明
end

取消大闹天宫副本单位 = function(任务id)
	local 副本id = 任务数据[任务id].副本id
	local 删除地图 = {
		6031,
		6033,
		6035
	}

	for n = 1, #删除地图 do
		local aa = 删除地图[n]

		for i, v in pairs(地图处理类.地图单位[aa]) do
			if 任务数据[地图处理类.地图单位[aa][i].id].副本id == 副本id then
				地图处理类:删除单位(aa, i)
			end
		end
	end
end

function 副本_大闹天宫:固定NPC对话内容(ID, 编号, 页数, 已经在任务中, 数字id, NPC模型, NPC名称)
	wb = {}
	xx = {}
	多段对话 = {}

	if ID == 6032 then
		wb[1] = "咦，你是何人来这蟠桃宴有何贵干？"
		local 任务id = 玩家数据[数字id].角色:取任务(180)

		if 任务id == 0 then
			return {
				NPC模型,
				NPC名称,
				wb[1],
				xx,
				多段对话
			}
		end

		local 副本id = 任务数据[任务id].副本id

		if 副本数据.大闹天宫.进行[副本id].进程 == 4 then
			if 任务数据[任务id].战诸神.必战斗[NPC名称] == 1 then
				wb[1] = "咦，你是何人来这蟠桃宴有何贵干？"
				多段对话 = {
					置快捷对话模版(快捷对话模版[数字id][2], "瞎了你的狗眼！吾乃赤脚大仙！"),
					置快捷对话模版(快捷对话模版[数字id][1], "#4当本仙是蠢蛋？！居然敢冒充上仙！大胆！我倒要看看你是何方宵小！"),
					置快捷对话模版(快捷对话模版[数字id][2], "居然被你发现了！", {
						"那就请你先睡上一觉吧！"
					})
				}
			elseif 编号 == 1 then
				if ygsj() <= 30 or 任务数据[任务id].战诸神.必战斗[NPC名称] == 0 then
					任务数据[任务id].战诸神.必战斗[NPC名称] = 0
					wb[1] = "不知大仙前来有失远迎,这蟠桃会真是热闹啊！"
					多段对话 = {
						置快捷对话模版(快捷对话模版[数字id][2], "不错，确实热闹。你先忙吧，我四处逛逛！"),
						置快捷对话模版(快捷对话模版[数字id][1], "是，恭送大仙！"),
						置快捷对话模版(快捷对话模版[数字id][2], "走了！", {
							"俺的七十二变就是厉害！"
						})
					}
				else
					任务数据[任务id].战诸神.必战斗[NPC名称] = 1
					wb[1] = "大仙真是好雅致，不知找小仙有何事？"
					多段对话 = {
						置快捷对话模版(快捷对话模版[数字id][2], "无事，闲来没事夏逛逛！"),
						置快捷对话模版(快捷对话模版[数字id][1], "#24大仙今日甚是奇怪！"),
						置快捷对话模版(快捷对话模版[数字id][2], "嗯？！"),
						置快捷对话模版(快捷对话模版[数字id][1], "不对，你不是赤脚大仙！何方妖孽竟敢冒闯瑶池宴！"),
						置快捷对话模版(快捷对话模版[数字id][2], "哈哈，不错不错，居然能发现俺老孙是冒充的！"),
						置快捷对话模版(快捷对话模版[数字id][1], "是你！弼马温！#4"),
						置快捷对话模版(快捷对话模版[数字id][2], "弼你老母！", {
							"找打！"
						})
					}
				end
			elseif 编号 == 2 then
				if ygsj() <= 30 or 任务数据[任务id].战诸神.必战斗[NPC名称] == 0 then
					任务数据[任务id].战诸神.必战斗[NPC名称] = 0
					wb[1] = "大仙真是好雅致,不知找小仙有何要事？！"
					多段对话 = {
						置快捷对话模版(快捷对话模版[数字id][2], "看看你是不是在偷懒。"),
						置快捷对话模版(快捷对话模版[数字id][1], "#78小仙岂敢！"),
						置快捷对话模版(快捷对话模版[数字id][2], "谅你也不敢，出了差池王母饶不了你！#28"),
						置快捷对话模版(快捷对话模版[数字id][1], "#110是！小仙定当做好本职工作！"),
						置快捷对话模版(快捷对话模版[数字id][2], "嗯，加油努力，好日子还在后头呢。", {
							"又一个被俺忽悠了"
						})
					}
				else
					任务数据[任务id].战诸神.必战斗[NPC名称] = 1
					wb[1] = "咦，你是何人来这蟠桃宴有何贵干？"
					多段对话 = {
						置快捷对话模版(快捷对话模版[数字id][2], "俺乃赤脚大仙！"),
						置快捷对话模版(快捷对话模版[数字id][1], "#4这说话的口吻……你是孙悟空！"),
						置快捷对话模版(快捷对话模版[数字id][2], "不错，就是你孙爷爷！", {
							"爷爷要教训教训你"
						})
					}
				end
			elseif 编号 == 3 then
				if ygsj() <= 30 or 任务数据[任务id].战诸神.必战斗[NPC名称] == 0 then
					任务数据[任务id].战诸神.必战斗[NPC名称] = 0
					wb[1] = "大仙？真是稀客,不知找小童有何吩咐！"
					多段对话 = {
						置快捷对话模版(快捷对话模版[数字id][2], "你在做什么？"),
						置快捷对话模版(快捷对话模版[数字id][1], "#2添柴烧火,小童要为王母娘娘煮出最美的仙酒！"),
						置快捷对话模版(快捷对话模版[数字id][2], "不错不错，想必王母喝过后定会十分心悦。", {
							"你烧、继续烧！"
						})
					}
				else
					任务数据[任务id].战诸神.必战斗[NPC名称] = 1
					wb[1] = "咦，你是何人来这蟠桃宴有何贵干？"
					多段对话 = {
						置快捷对话模版(快捷对话模版[数字id][2], "小小童子居然不认识本大仙！"),
						置快捷对话模版(快捷对话模版[数字id][1], "虽然装得很像，但你并不是赤脚大仙，你究竟是谁？！"),
						置快捷对话模版(快捷对话模版[数字id][2], "我看你是烧火烧傻了。", {
							"多管闲事、找打！"
						})
					}
				end
			elseif 编号 == 4 then
				if ygsj() <= 30 or 任务数据[任务id].战诸神.必战斗[NPC名称] == 0 then
					任务数据[任务id].战诸神.必战斗[NPC名称] = 0
					wb[1] = "大仙真是好雅致,不知找小仙有何要事？！"
					多段对话 = {
						置快捷对话模版(快捷对话模版[数字id][2], "没事，你忙你的。"),
						置快捷对话模版(快捷对话模版[数字id][1], "#52大仙没有事居然主动跟小仙打招呼了！"),
						置快捷对话模版(快捷对话模版[数字id][2], "……", {
							"这人怕不是有病吧……"
						})
					}
				else
					任务数据[任务id].战诸神.必战斗[NPC名称] = 1
					wb[1] = "咦，你是何人来这蟠桃宴有何贵干？"
					多段对话 = {
						置快捷对话模版(快捷对话模版[数字id][2], "……"),
						置快捷对话模版(快捷对话模版[数字id][1], "不说话？！竟敢冒充我最崇拜的赤脚大仙！我倒要看看你是何人！"),
						置快捷对话模版(快捷对话模版[数字id][2], "俺你是孙爷爷。", {
							"做过一场再说！"
						})
					}
				end
			end
		end

		return {
			NPC模型,
			NPC名称,
			wb[1],
			xx,
			多段对话
		}
	elseif ID == 6031 then
		if 编号 == 1 then
			wb[1] = "在下锄树力士，等候大圣多时！最近桃园中疏于整修，杂草丛生，烦请大圣帮忙前去除草护树！"
		elseif 编号 == 2 then
			wb[1] = "浇水力士拜见大圣！蟠桃园中桃树需要浇水，大圣请带着水桶前去给蟠桃树浇水吧！"
		elseif 编号 == 3 then
			wb[1] = "修桃力士有礼了！蟠桃园中桃树近日来有虫豸作怪，急需修整，还望大圣前往桃树一展神通吧！"
		elseif 编号 == 4 then
			wb[1] = "这是一株千年蟠桃树，每千年一结果!"
		elseif 编号 == 5 then
			wb[1] = "这是一株两千年蟠桃树，每两千年一结果!"
		elseif 编号 == 6 then
			wb[1] = "这是一株三千年蟠桃树，每三千年一结果!"
		elseif 编号 == 7 then
			wb[1] = "这是一株四千年蟠桃树，每四千年一结果!"
		elseif 编号 == 8 then
			wb[1] = "这是一株五千年蟠桃树，每五千年一结果!"
		elseif 编号 == 9 then
			wb[1] = "这是一株六千年蟠桃树，每六千年一结果!"
		elseif 编号 == 10 then
			wb[1] = "这是一株七千年蟠桃树，每七千年一结果!"
		elseif 编号 == 11 then
			wb[1] = "这是一株八千年蟠桃树，每八千年一结果!"
		elseif 编号 == 12 then
			wb[1] = "这是一株九千年蟠桃树，每九千年一结果!"
		end

		local 任务id = 玩家数据[数字id].角色:取任务(180)

		if 任务id == 0 then
			return {
				NPC模型,
				NPC名称,
				wb[1],
				xx,
				多段对话
			}
		end

		local 副本id = 任务数据[任务id].副本id

		if 副本数据.大闹天宫.进行[副本id].进程 == 1 then
			local 浇水 = 玩家数据[数字id].角色:取任务(182)
			local 浇水目标 = ""
			local 修桃 = 玩家数据[数字id].角色:取任务(183)
			local 修桃目标 = ""
			xx = {}

			if 浇水 ~= 0 then
				浇水目标 = 任务数据[浇水].目标

				if NPC名称 == 浇水目标 then
					xx[#xx + 1] = "给蟠桃树浇水！"
				end
			end

			if 修桃 ~= 0 then
				修桃目标 = 任务数据[修桃].目标

				if NPC名称 == 修桃目标 then
					xx[#xx + 1] = "为蟠桃修整除虫！"
				end
			end

			if 编号 <= 3 then
				xx = {
					"区区小事，且看俺的神通",
					"请帮我取消任务",
					"不急不急、俺先到处转转"
				}
			end
		end

		return {
			NPC模型,
			NPC名称,
			wb[1],
			xx,
			多段对话
		}
	end
end

function 副本_大闹天宫:对话内容(数字id, 类型, 标识, 地图)
	local 对话数据 = {
		模型 = 任务数据[标识].模型,
		名称 = 任务数据[标识].名称,
		选项 = {}
	}
	local 副本id = 任务数据[标识].副本id
	local rwid = 副本数据.大闹天宫.进行[副本id].副本任务id

	if 任务数据[标识].战斗 then
		对话数据.对话 = "正在战斗中，请勿打扰。"

		return 对话数据
	end

	local 名称 = 任务数据[标识].名称

	if 对话数据.名称 == "七仙女" then
		local 对话列表 = {
			[1.0] = "我等奉王母娘娘之命前来摘取仙桃，大开宝阁，做“蟠桃盛会”，你竟敢私自偷吃蟠桃，该当何罪！",
			[2.0] = "大胆！齐天大圣，你怎么敢偷吃蟠桃？！"
		}
		对话数据.对话 = 对话列表[ygsj(#对话列表)]
		对话数据.多段对话 = {
			置快捷对话模版(快捷对话模版[数字id][2], "仙桃并非偷得，乃园中随风掉落，你等竟然冤枉于我", {
				"看打！"
			})
		}
	elseif 对话数据.名称 == "蟠桃" then
		if 玩家数据[数字id].队伍 == 0 then
			常规提示(数字id, "#Y请组队完成！")

			return
		end

		if 副本数据.大闹天宫.进行[副本id].进程 == 2 and 任务数据[rwid].蟠桃 > 0 then
			任务数据[rwid].蟠桃 = 任务数据[rwid].蟠桃 - 1

			for i = 1, #队伍数据[玩家数据[数字id].队伍].成员数据 do
				if 队伍处理类:取是否助战(玩家数据[数字id].队伍, i) == 0 then
					local id = 队伍数据[玩家数据[数字id].队伍].成员数据[i]

					通用给奖励(id, {
						活跃度 = 1,
						经验 = {
							250,
							350
						},
						银子 = {
							100,
							150
						},
						储备 = {
							150,
							200
						}
					}, "大闹天宫1")
				end
			end
		end

		if 任务数据[rwid].蟠桃 <= 0 then
			副本数据.大闹天宫.进行[副本id].进程 = 3

			任务处理类:设置大闹天宫副本(副本id)
		end

		for n = 1, #队伍数据[玩家数据[数字id].队伍].成员数据 do
			if 队伍处理类:取是否助战(玩家数据[数字id].队伍, n) == 0 then
				玩家数据[队伍数据[玩家数据[数字id].队伍].成员数据[n]].角色:刷新任务跟踪()
			end
		end

		地图处理类:删除单位(任务数据[标识].地图编号, 任务数据[标识].单位编号)

		任务数据[标识] = nil
	elseif 对话数据.名称 == "饥饿的小猴" then
		if 玩家数据[数字id].队伍 == 0 then
			常规提示(数字id, "#Y请组队完成！")

			return
		end

		if 副本数据.大闹天宫.进行[副本id].进程 == 5 and 任务数据[rwid].饥饿小猴 > 0 then
			任务数据[rwid].饥饿小猴 = 任务数据[rwid].饥饿小猴 - 1

			if 任务数据[rwid].饥饿小猴 <= 0 then
				副本数据.大闹天宫.进行[副本id].进程 = 6

				任务处理类:设置大闹天宫副本(副本id)
			end

			for i = 1, #队伍数据[玩家数据[数字id].队伍].成员数据 do
				if 队伍处理类:取是否助战(玩家数据[数字id].队伍, i) == 0 then
					local id = 队伍数据[玩家数据[数字id].队伍].成员数据[i]

					通用给奖励(id, {
						经验 = {
							100,
							110
						},
						银子 = {
							10,
							20
						},
						储备 = {
							100,
							150
						}
					}, "大闹天宫1")
					添加最后对话(id, "好吃！太好吃了！大王万岁！")
					玩家数据[id].角色:刷新任务跟踪()
				end
			end
		end

		地图处理类:删除单位(任务数据[标识].地图编号, 任务数据[标识].单位编号)

		任务数据[标识] = nil

		return
	elseif 对话数据.名称 == "崩将军" then
		if 副本数据.大闹天宫.进行[副本id].进程 == 6 and 任务数据[rwid].天兵天将.天兵 == false then
			对话数据.对话 = "誓死保护大王！"
		else
			对话数据.对话 = "大王威武！"
		end
	elseif 对话数据.名称 == "芭将军" then
		if 副本数据.大闹天宫.进行[副本id].进程 == 6 and 任务数据[rwid].天兵天将.天将 == false then
			对话数据.对话 = "誓死保护大王！"
		else
			对话数据.对话 = "大王霸气！"
		end
	elseif 对话数据.名称 == "天兵统领" then
		if 副本数据.大闹天宫.进行[副本id].进程 == 6 and 任务数据[rwid].天兵天将.天兵 == false then
			local 对话列表 = {
				[1.0] = "我等乃上界差调的天神，到此降伏你这造反的大圣！快快归降，若道半个不字，教你等一概遭诛！"
			}
			对话数据.对话 = 对话列表[ygsj(#对话列表)]
			对话数据.多段对话 = {
				置快捷对话模版(快捷对话模版[数字id][2], "竟敢伤俺猴子猴孙", {
					"找死！"
				})
			}
		else
			对话数据.对话 = "你这妖擎果然骁勇，我等战你不过，先行撤退了！"
		end
	elseif 对话数据.名称 == "天将统领" then
		if 副本数据.大闹天宫.进行[副本id].进程 == 6 and 任务数据[rwid].天兵天将.天将 == false then
			local 对话列表 = {
				[1.0] = "我等乃上界差调的天神，到此降伏你这造反的大圣！快快归降，若道半个不字，教你等一概遭诛！"
			}
			对话数据.对话 = 对话列表[ygsj(#对话列表)]
			对话数据.多段对话 = {
				置快捷对话模版(快捷对话模版[数字id][2], "上界？笑话！俺要这天再也遮不住俺的眼！", {
					"来战！"
				})
			}
		else
			对话数据.对话 = "你这妖擎果然骁勇，我等战你不过，先行撤退了！"
		end
	elseif 对话数据.名称 == "二郎真君" then
		if 副本数据.大闹天宫.进行[副本id].进程 == 7 and 任务数据[rwid].二郎惠岸.二郎真君 == false then
			local 对话列表 = {
				[1.0] = "二郎直君在此！今蒙上命，到此擒你这为非作歹的妖孽，你可知死活？可敢与我一试高下？"
			}
			对话数据.对话 = 对话列表[ygsj(#对话列表)]
			对话数据.多段对话 = {
				置快捷对话模版(快捷对话模版[数字id][2], "有何不敢！", {
					"与俺先大战三百回合！"
				})
			}
		end
	elseif 对话数据.名称 == "惠岸行者" then
		if 副本数据.大闹天宫.进行[副本id].进程 == 7 and 任务数据[rwid].二郎惠岸.惠岸行者 == false then
			local 对话列表 = {
				[1.0] = "苦海无涯，回头是岸。泼猴，切勿执迷不悟！"
			}
			对话数据.对话 = 对话列表[ygsj(#对话列表)]
			对话数据.多段对话 = {
				置快捷对话模版(快捷对话模版[数字id][2], "你又是何人！", {
					"废话真多！"
				})
			}
		end
	elseif 对话数据.名称 == "玉帝" and 副本数据.大闹天宫.进行[副本id].进程 == 8 then
		local 对话列表 = {
			[1.0] = "妖擎休得无理！我已差遇佑圣真君请来力大无穷、法力无边的上古雷神对付你，你可别太放肆了！"
		}
		对话数据.对话 = 对话列表[ygsj(#对话列表)]
		对话数据.选项 = {
			"谁来我都不怕，就把这凌宵宝殿借给我要耍吧！"
		}
	end

	return 对话数据
end

function 副本_大闹天宫:对话处理(id, 数字id, 名称, 事件, 类型, rwid)
	local 地图编号 = 玩家数据[数字id].角色.数据.地图数据.编号

	if 事件 == "看打！" then
		战斗准备类:创建战斗(id, 100149, rwid)
	elseif 事件 == "找死！" then
		战斗准备类:创建战斗(id, 100154, rwid)
	elseif 事件 == "来战！" then
		战斗准备类:创建战斗(id, 100155, rwid)
	elseif 事件 == "与俺先大战三百回合！" then
		战斗准备类:创建战斗(id, 100156, rwid)
	elseif 事件 == "废话真多！" then
		战斗准备类:创建战斗(id, 100156.1, rwid)
	elseif 事件 == "谁来我都不怕，就把这凌宵宝殿借给我要耍吧！" then
		战斗准备类:创建战斗(id, 100157, rwid)
	elseif 地图编号 == 6032 then
		local 任务id = 玩家数据[数字id].角色:取任务(180)

		if 任务id == 0 then
			return
		end

		local 副本id = 任务数据[任务id].副本id

		if 副本数据.大闹天宫.进行[副本id].进程 == 4 then
			local 给奖励 = true

			if 事件 == "俺的七十二变就是厉害！" then
				任务数据[任务id].战诸神.造酒仙官 = true

				刷新队伍任务跟踪(任务id)
			elseif 事件 == "又一个被俺忽悠了" then
				任务数据[任务id].战诸神.运水道人 = true

				刷新队伍任务跟踪(任务id)
			elseif 事件 == "你烧、继续烧！" then
				任务数据[任务id].战诸神.烧火童子 = true

				刷新队伍任务跟踪(任务id)
			elseif 事件 == "这人怕不是有病吧……" then
				任务数据[任务id].战诸神.盘槽力士 = true

				刷新队伍任务跟踪(任务id)
			else
				给奖励 = false

				if 快捷对话模版[数字id].名称 == "造酒仙官" then
					战斗准备类:创建战斗(数字id + 0, 100150, 任务id)
				elseif 快捷对话模版[数字id].名称 == "运水道人" then
					战斗准备类:创建战斗(数字id + 0, 100151, 任务id)
				elseif 快捷对话模版[数字id].名称 == "烧火童子" then
					战斗准备类:创建战斗(数字id + 0, 100152, 任务id)
				elseif 快捷对话模版[数字id].名称 == "盘槽力士" then
					战斗准备类:创建战斗(数字id + 0, 100153, 任务id)
				end
			end

			if 给奖励 then
				for i = 1, #队伍数据[玩家数据[数字id].队伍].成员数据 do
					if 队伍处理类:取是否助战(玩家数据[数字id].队伍, i) == 0 then
						local id = 队伍数据[玩家数据[数字id].队伍].成员数据[i]
						玩家数据[id].战斗 = 0

						通用给奖励(id, {
							活跃度 = 1,
							经验 = {
								1000,
								1200
							},
							银子 = {
								400,
								500
							},
							储备 = {
								250,
								300
							}
						}, "大闹天宫2")
					end
				end

				local 完成数据 = {
					"造酒仙官",
					"运水道人",
					"烧火童子",
					"盘槽力士"
				}
				local 是否完成 = true

				for i = 1, 4 do
					if not 任务数据[任务id].战诸神[完成数据[i]] then
						是否完成 = false
					end
				end

				if 是否完成 then
					副本数据.大闹天宫.进行[副本id].进程 = 5

					任务处理类:设置大闹天宫副本(副本id)
					刷新队伍任务跟踪(任务id)
					地图处理类:跳转地图(数字id, 6033, 103, 59)
				end
			end

			return
		end
	elseif 地图编号 == 6031 then
		local 任务id = 玩家数据[数字id].角色:取任务(180)

		if 任务id == 0 then
			return
		end

		local 副本id = 任务数据[任务id].副本id

		if 副本数据.大闹天宫.进行[副本id].进程 == 1 then
			if 玩家数据[数字id].角色.数据.对话类型 == "大闹除草" then
				玩家数据[数字id].角色.数据.对话类型 = nil
				local 任务id = 玩家数据[数字id].角色:取任务(181)

				if 任务id ~= 0 then
					local 力道 = 个位汉字转数字(分割文本(事件, "分")[1])

					if math.abs(任务数据[任务id].力道 - 力道) <= 1 then
						添加最后对话(数字id, "看来力道合适，除草很成功。", nil, nil, 1)

						local rwid = 玩家数据[数字id].角色:取任务(180)

						if 任务数据[rwid].三大力士.锄树力士 > 0 then
							任务数据[rwid].三大力士.锄树力士 = 任务数据[rwid].三大力士.锄树力士 - 1

							if 任务数据[rwid].完成三大力士 == nil then
								任务数据[rwid].完成三大力士 = 0
							end

							任务数据[rwid].完成三大力士 = 任务数据[rwid].完成三大力士 + 1

							if 任务数据[rwid].三大力士.锄树力士 <= 0 then
								取消队伍任务(rwid, 181)
							else
								玩家数据[数字id].角色:取消任务(玩家数据[数字id].角色:取任务(181))
							end

							if 任务数据[rwid].完成三大力士 >= 副本减负.大闹天宫[1] + 副本减负.大闹天宫[2] + 副本减负.大闹天宫[3] then
								local fbid = 任务数据[rwid].副本id
								副本数据.大闹天宫.进行[fbid].进程 = 2

								任务处理类:设置大闹天宫副本(fbid)
							end

							通用给奖励(数字id, {
								活跃度 = 1,
								经验 = {
									250,
									350
								},
								银子 = {
									100,
									150
								},
								储备 = {
									150,
									200
								}
							}, "大闹天宫1", nil, 1)
							刷新队伍任务跟踪(rwid)
						end

						return
					else
						添加最后对话(数字id, "或许力道不太合适，再尝试一次看看？", nil, nil, 1)

						return
					end
				end
			elseif 名称 == "锄树力士" then
				if 事件 == "区区小事，且看俺的神通" then
					任务处理类:大闹锄树(数字id)
				elseif 事件 == "请帮我取消任务" then
					if 玩家数据[数字id].角色:取任务(181) == 0 then
						添加最后对话(数字id, "你没有领取过这样的任务啊。")

						return
					else
						玩家数据[数字id].角色:取消任务(玩家数据[数字id].角色:取任务(181))
						添加最后对话(数字id, "已经帮你取消了此任务。")

						return
					end
				end
			elseif 名称 == "运水力士" then
				if 事件 == "区区小事，且看俺的神通" then
					任务处理类:大闹浇水(数字id)
				elseif 事件 == "请帮我取消任务" then
					if 玩家数据[数字id].角色:取任务(182) == 0 then
						添加最后对话(数字id, "你没有领取过这样的任务啊。")

						return
					else
						玩家数据[数字id].角色:取消任务(玩家数据[数字id].角色:取任务(182))
						添加最后对话(数字id, "已经帮你取消了此任务。")

						return
					end
				end
			elseif 名称 == "修桃力士" then
				if 事件 == "区区小事，且看俺的神通" then
					任务处理类:大闹修桃(数字id)
				elseif 事件 == "请帮我取消任务" then
					if 玩家数据[数字id].角色:取任务(183) == 0 then
						添加最后对话(数字id, "你没有领取过这样的任务啊。")

						return
					else
						玩家数据[数字id].角色:取消任务(玩家数据[数字id].角色:取任务(183))
						添加最后对话(数字id, "已经帮你取消了此任务。")

						return
					end
				end
			elseif 事件 == "给蟠桃树浇水！" then
				local rwid = 玩家数据[数字id].角色:取任务(180)

				if 任务数据[rwid].三大力士.运水力士 > 0 then
					任务数据[rwid].三大力士.运水力士 = 任务数据[rwid].三大力士.运水力士 - 1

					if 任务数据[rwid].完成三大力士 == nil then
						任务数据[rwid].完成三大力士 = 0
					end

					任务数据[rwid].完成三大力士 = 任务数据[rwid].完成三大力士 + 1

					if 任务数据[rwid].三大力士.运水力士 <= 0 then
						取消队伍任务(rwid, 182)
					else
						玩家数据[数字id].角色:取消任务(玩家数据[数字id].角色:取任务(182))
					end

					if 任务数据[rwid].完成三大力士 >= 副本减负.大闹天宫[1] + 副本减负.大闹天宫[2] + 副本减负.大闹天宫[3] then
						local fbid = 任务数据[rwid].副本id
						副本数据.大闹天宫.进行[fbid].进程 = 2

						任务处理类:设置大闹天宫副本(fbid)
					end

					通用给奖励(数字id, {
						活跃度 = 1,
						经验 = {
							250,
							350
						},
						银子 = {
							100,
							150
						},
						储备 = {
							150,
							200
						}
					}, "大闹天宫1", nil, 1)
					刷新队伍任务跟踪(rwid)
				end
			elseif 事件 == "为蟠桃修整除虫！" then
				战斗准备类:创建战斗(数字id + 0, 100148)
			end
		end
	end
end

function 副本_大闹天宫:战斗胜利处理(战斗类型, 进入战斗玩家id, 任务id)
	if 战斗类型 == 100147 then
	elseif 战斗类型 == 100148 then
		local rwid = 玩家数据[进入战斗玩家id].角色:取任务(180)

		if 任务数据[rwid].三大力士.修桃力士 > 0 then
			任务数据[rwid].三大力士.修桃力士 = 任务数据[rwid].三大力士.修桃力士 - 1

			if 任务数据[rwid].完成三大力士 == nil then
				任务数据[rwid].完成三大力士 = 0
			end

			任务数据[rwid].完成三大力士 = 任务数据[rwid].完成三大力士 + 1

			if 任务数据[rwid].三大力士.修桃力士 <= 0 then
				取消队伍任务(rwid, 183)
			else
				玩家数据[进入战斗玩家id].角色:取消任务(玩家数据[进入战斗玩家id].角色:取任务(183))
			end

			if 任务数据[rwid].完成三大力士 >= 副本减负.大闹天宫[1] + 副本减负.大闹天宫[2] + 副本减负.大闹天宫[3] then
				local fbid = 任务数据[rwid].副本id
				副本数据.大闹天宫.进行[fbid].进程 = 2

				任务处理类:设置大闹天宫副本(fbid)
			end

			通用给奖励(进入战斗玩家id, {
				活跃度 = 1,
				经验 = {
					250,
					350
				},
				银子 = {
					100,
					150
				},
				储备 = {
					150,
					200
				}
			}, "大闹天宫1", nil, 1)
			刷新队伍任务跟踪(rwid)
		end
	elseif 战斗类型 == 100149 then
		local rwid = 玩家数据[进入战斗玩家id].角色:取任务(180)
		local fbid = 任务数据[rwid].副本id
		local 完成任务 = false
		任务数据[rwid].七仙女 = 任务数据[rwid].七仙女 - 1

		if 任务数据[rwid].七仙女 <= 0 then
			副本数据.大闹天宫.进行[fbid].进程 = 4

			任务处理类:设置大闹天宫副本(fbid)

			完成任务 = true
		end

		for i = 1, #队伍数据[玩家数据[进入战斗玩家id].队伍].成员数据 do
			if 队伍处理类:取是否助战(玩家数据[进入战斗玩家id].队伍, i) == 0 then
				local id = 队伍数据[玩家数据[进入战斗玩家id].队伍].成员数据[i]
				玩家数据[id].战斗 = 0

				通用给奖励(id, {
					活跃度 = 1,
					经验 = {
						800,
						1000
					},
					银子 = {
						300,
						400
					},
					储备 = {
						200,
						250
					}
				}, "大闹天宫1")

				if 完成任务 and 玩家数据[id].角色.数据.变身数据 == nil then
					玩家数据[id].角色.数据.变身数据 = "菩提祖师"
					玩家数据[id].角色.数据.变异 = nil
					玩家数据[id].角色.数据.变身卡技能 = nil

					玩家数据[id].角色:刷新信息()
					发送数据(玩家数据[id].连接id, 37, {
						变身数据 = 玩家数据[id].角色.数据.变身数据,
						变异 = 玩家数据[id].角色.数据.变异
					})
					任务处理类:添加变身(id, 9)
					地图处理类:更改模型(id, {
						玩家数据[id].角色.数据.变身数据,
						玩家数据[id].角色.数据.变异
					}, 1)
					常规提示(id, "#Y/此处甚好,且让我变化一番！")
				end
			end
		end

		地图处理类:删除单位(任务数据[任务id].地图编号, 任务数据[任务id].单位编号)

		任务数据[任务id] = nil

		if 完成任务 then
			地图处理类:跳转地图(进入战斗玩家id, 6032, 103, 59)
		end

		刷新队伍任务跟踪(rwid)
	elseif 战斗类型 >= 100150 and 战斗类型 <= 100153 then
		local rwid = 玩家数据[进入战斗玩家id].角色:取任务(180)
		local fbid = 任务数据[rwid].副本id

		if 战斗类型 == 100150 then
			任务数据[rwid].战诸神.造酒仙官 = true
		elseif 战斗类型 == 100151 then
			任务数据[rwid].战诸神.运水道人 = true
		elseif 战斗类型 == 100152 then
			任务数据[rwid].战诸神.烧火童子 = true
		elseif 战斗类型 == 100153 then
			任务数据[rwid].战诸神.盘槽力士 = true
		end

		local 完成数据 = {
			"造酒仙官",
			"运水道人",
			"烧火童子",
			"盘槽力士"
		}
		local 是否完成 = true

		for i = 1, 4 do
			if not 任务数据[rwid].战诸神[完成数据[i]] then
				是否完成 = false
			end
		end

		for i = 1, #队伍数据[玩家数据[进入战斗玩家id].队伍].成员数据 do
			if 队伍处理类:取是否助战(玩家数据[进入战斗玩家id].队伍, i) == 0 then
				local id = 队伍数据[玩家数据[进入战斗玩家id].队伍].成员数据[i]
				玩家数据[id].战斗 = 0

				通用给奖励(id, {
					活跃度 = 1,
					经验 = {
						1000,
						1200
					},
					银子 = {
						400,
						500
					},
					储备 = {
						250,
						300
					}
				}, "大闹天宫2")
			end
		end

		if 是否完成 then
			副本数据.大闹天宫.进行[fbid].进程 = 5

			任务处理类:设置大闹天宫副本(fbid)
			刷新队伍任务跟踪(rwid)

			玩家数据[进入战斗玩家id].战斗 = 0

			地图处理类:跳转地图(进入战斗玩家id, 6033, 103, 59)
		end
	elseif 战斗类型 == 100154 then
		local rwid = 玩家数据[进入战斗玩家id].角色:取任务(180)

		if rwid ~= 0 then
			for i = 1, #队伍数据[玩家数据[进入战斗玩家id].队伍].成员数据 do
				if 队伍处理类:取是否助战(玩家数据[进入战斗玩家id].队伍, i) == 0 then
					local id = 队伍数据[玩家数据[进入战斗玩家id].队伍].成员数据[i]
					玩家数据[id].战斗 = 0

					通用给奖励(id, {
						活跃度 = 1,
						经验 = {
							1200,
							1500
						},
						银子 = {
							500,
							600
						},
						储备 = {
							300,
							400
						}
					}, "大闹天宫3")
					添加最后对话(id, "你这妖擎果然骁勇，我等战你不过，先行撤退了！")
				end
			end

			任务数据[rwid].天兵天将.天兵 = true

			if 任务数据[rwid].天兵天将.天将 then
				local fbid = 任务数据[rwid].副本id
				副本数据.大闹天宫.进行[fbid].进程 = 7

				任务处理类:设置大闹天宫副本(fbid)
				刷新队伍任务跟踪(rwid)
			end

			地图处理类:删除单位(任务数据[任务id].地图编号, 任务数据[任务id].单位编号)

			任务数据[任务id] = nil
		end
	elseif 战斗类型 == 100155 then
		local rwid = 玩家数据[进入战斗玩家id].角色:取任务(180)

		if rwid ~= 0 then
			任务数据[rwid].天兵天将.天将 = true

			for i = 1, #队伍数据[玩家数据[进入战斗玩家id].队伍].成员数据 do
				if 队伍处理类:取是否助战(玩家数据[进入战斗玩家id].队伍, i) == 0 then
					local id = 队伍数据[玩家数据[进入战斗玩家id].队伍].成员数据[i]
					玩家数据[id].战斗 = 0

					通用给奖励(id, {
						活跃度 = 1,
						经验 = {
							1200,
							1500
						},
						银子 = {
							500,
							600
						},
						储备 = {
							300,
							400
						}
					}, "大闹天宫3")
					添加最后对话(id, "你这妖擎果然骁勇，我等战你不过，先行撤退了！")
				end
			end

			if 任务数据[rwid].天兵天将.天兵 then
				local fbid = 任务数据[rwid].副本id
				副本数据.大闹天宫.进行[fbid].进程 = 7

				任务处理类:设置大闹天宫副本(fbid)
				刷新队伍任务跟踪(rwid)
			end

			地图处理类:删除单位(任务数据[任务id].地图编号, 任务数据[任务id].单位编号)

			任务数据[任务id] = nil
		end
	elseif 战斗类型 == 100156 then
		local rwid = 玩家数据[进入战斗玩家id].角色:取任务(180)

		if rwid ~= 0 then
			任务数据[rwid].二郎惠岸.二郎真君 = true

			for i = 1, #队伍数据[玩家数据[进入战斗玩家id].队伍].成员数据 do
				if 队伍处理类:取是否助战(玩家数据[进入战斗玩家id].队伍, i) == 0 then
					local id = 队伍数据[玩家数据[进入战斗玩家id].队伍].成员数据[i]
					玩家数据[id].战斗 = 0

					通用给奖励(id, {
						活跃度 = 1,
						经验 = {
							1500,
							2000
						},
						银子 = {
							600,
							700
						},
						储备 = {
							400,
							500
						}
					}, "大闹天宫4", nil, "不判断次数")
					添加最后对话(id, "棋差一招，齐天大圣果然名不虚传！")
				end
			end

			if 任务数据[rwid].二郎惠岸.惠岸行者 then
				local fbid = 任务数据[rwid].副本id

				地图处理类:跳转地图(进入战斗玩家id, 6035, 29, 145)

				副本数据.大闹天宫.进行[fbid].进程 = 8

				任务处理类:设置大闹天宫副本(fbid)
				刷新队伍任务跟踪(rwid)
			end

			地图处理类:删除单位(任务数据[任务id].地图编号, 任务数据[任务id].单位编号)

			任务数据[任务id] = nil
		end
	elseif 战斗类型 == 100156.1 then
		local rwid = 玩家数据[进入战斗玩家id].角色:取任务(180)

		if rwid ~= 0 then
			任务数据[rwid].二郎惠岸.惠岸行者 = true

			for i = 1, #队伍数据[玩家数据[进入战斗玩家id].队伍].成员数据 do
				if 队伍处理类:取是否助战(玩家数据[进入战斗玩家id].队伍, i) == 0 then
					local id = 队伍数据[玩家数据[进入战斗玩家id].队伍].成员数据[i]
					玩家数据[id].战斗 = 0

					通用给奖励(id, {
						活跃度 = 1,
						经验 = {
							1500,
							2000
						},
						银子 = {
							600,
							700
						},
						储备 = {
							400,
							500
						}
					}, "大闹天宫4")
					添加最后对话(id, "世间怎会有你这般神通广大的泼猴！")
				end
			end

			if 任务数据[rwid].二郎惠岸.二郎真君 then
				local fbid = 任务数据[rwid].副本id

				地图处理类:跳转地图(进入战斗玩家id, 6035, 29, 145)

				副本数据.大闹天宫.进行[fbid].进程 = 8

				任务处理类:设置大闹天宫副本(fbid)
				刷新队伍任务跟踪(rwid)
			end

			地图处理类:删除单位(任务数据[任务id].地图编号, 任务数据[任务id].单位编号)

			任务数据[任务id] = nil
		end
	elseif 战斗类型 == 100157 then
		local rwid = 玩家数据[进入战斗玩家id].角色:取任务(180)

		if rwid ~= 0 then
			for n = 1, #队伍数据[玩家数据[进入战斗玩家id].队伍].成员数据 do
				if 队伍处理类:取是否助战(玩家数据[进入战斗玩家id].队伍, n) == 0 then
					local id = 队伍数据[玩家数据[进入战斗玩家id].队伍].成员数据[n]

					通用给奖励(id, {
						活跃度 = 10,
						副本积分 = 20,
						经验 = {
							3000,
							4000
						},
						银子 = {
							1500,
							2000
						},
						储备 = {
							1000,
							1500
						}
					}, "大闹天宫")

					玩家数据[id].战斗 = 0

					玩家数据[id].角色:取消任务(rwid)

					副本数据.大闹天宫.完成[id] = true
				end
			end

			地图处理类:删除单位(任务数据[任务id].地图编号, 任务数据[任务id].单位编号)

			任务数据[任务id] = nil
			local fbid = 任务数据[rwid].副本id

			取消大闹天宫副本单位(rwid)
			地图处理类:跳转地图(进入战斗玩家id, 1070, 53, 196)

			副本数据.大闹天宫.进行[fbid] = nil
			任务数据[rwid] = nil
		end
	end
end

开启大闹天宫副本 = function(id)
	if 副本减负.大闹天宫开启 == false then
		常规提示(id, "#Y该副本还未修复好、请等待更新。")

		return
	end

	if 玩家数据[id].队伍 == 0 or 玩家数据[id].队长 == false then
		常规提示(id, "#Y/该任务必须组队完成且由队长领取")

		return
	elseif 取队伍人数(id) < 3 then
		常规提示(id, "#Y此副本要求队伍人数不低于3人")

		return
	elseif 取等级要求(id, 60) == false then
		常规提示(id, "#Y此副本要求角色等级不能低于60级")

		return
	end

	local 队伍id = 玩家数据[id].队伍

	for n = 1, #队伍数据[队伍id].成员数据 do
		local 临时id = 队伍数据[队伍id].成员数据[n]

		if 副本数据.大闹天宫.完成[临时id] ~= nil then
			常规提示(临时id, "#P" .. 玩家数据[临时id].角色.数据.名称 .. "#Y本日已经完成过此副本了")

			return
		elseif 玩家数据[临时id].角色:取任务(180) ~= 0 then
			常规提示(临时id, "#Y" .. 玩家数据[临时id].角色.数据.名称 .. "正在进行副本任务，无法领取新的副本")

			return
		end
	end

	local 任务id = id .. "_180_" .. os.time() .. "_" .. 随机序列 .. "_" .. 取随机数(88, 99999999)
	任务数据[任务id] = {
		类型 = 180,
		结束 = 7200,
		id = 任务id,
		起始 = os.time(),
		玩家id = {},
		队伍组 = {},
		副本id = id
	}
	副本数据.大闹天宫.进行[id] = {
		进程 = 1,
		副本任务id = 任务id
	}
	local 队伍id = 玩家数据[id].队伍

	for n = 1, #队伍数据[队伍id].成员数据 do
		if 队伍处理类:取是否助战(玩家数据[id].队伍, n) == 0 then
			任务数据[任务id].队伍组[#任务数据[任务id].队伍组 + 1] = 队伍数据[队伍id].成员数据[n]
		end
	end

	设置大闹天宫副本(id)

	for n = 1, #队伍数据[队伍id].成员数据 do
		if 队伍处理类:取是否助战(玩家数据[id].队伍, n) == 0 then
			local 临时id = 队伍数据[队伍id].成员数据[n]

			玩家数据[临时id].角色:添加任务(任务id)
			常规提示(临时id, "#Y你开启了大闹天宫副本")
		end
	end
end

设置大闹天宫副本 = function(id)
	local 地图 = 0
	local x坐标 = 0
	local y坐标 = 0
	local 方向 = 0

	if 副本数据.大闹天宫.进行[id] == nil then
		return
	end

	if 副本数据.大闹天宫.进行[id].副本任务id == nil then
		常规提示(id, "#Y副本任务失败！")

		return
	end

	local fbid = 副本数据.大闹天宫.进行[id].副本任务id

	if 副本数据.大闹天宫.进行[id].进程 == 1 then
		地图 = 6031
		任务数据[fbid].三大力士 = {
			锄树力士 = 副本减负.大闹天宫[1],
			运水力士 = 副本减负.大闹天宫[2],
			修桃力士 = 副本减负.大闹天宫[3]
		}
	elseif 副本数据.大闹天宫.进行[id].进程 == 2 then
		任务数据[fbid].蟠桃 = 副本减负.大闹天宫[4]
		地图 = 6031

		for i = 1, 副本减负.大闹天宫[4] do
			任务id = id .. "_184_" .. os.time() .. "_" .. 随机序列 .. "_" .. 取随机数(1, 9999) .. i
			local xy = 地图处理类.地图坐标[地图]:取随机点()
			任务数据[任务id] = {
				名称 = "蟠桃",
				结束 = 7201,
				行走开关 = false,
				模型 = "蟠桃",
				类型 = 184,
				id = 任务id,
				起始 = os.time(),
				玩家id = id,
				队伍组 = {},
				x = xy.x,
				y = xy.y,
				方向 = 方向,
				副本id = id,
				地图编号 = 地图,
				地图名称 = 取地图名称(地图)
			}

			地图处理类:添加单位(任务id)
		end
	elseif 副本数据.大闹天宫.进行[id].进程 == 3 then
		地图 = 6031
		任务数据[fbid].七仙女 = 副本减负.大闹天宫[5]

		for i = 1, 副本减负.大闹天宫[5] do
			任务id = id .. "_185_" .. os.time() .. "_" .. 随机序列 .. "_" .. 取随机数(88, 99999999) .. i
			local xy = 地图处理类.地图坐标[地图]:取随机点()
			任务数据[任务id] = {
				名称 = "七仙女",
				行走开关 = true,
				方向 = 1,
				结束 = 7201,
				模型 = "芙蓉仙子",
				类型 = 185,
				id = 任务id,
				起始 = os.time(),
				玩家id = id,
				队伍组 = {},
				x = xy.x,
				y = xy.y,
				副本id = id,
				地图编号 = 地图,
				地图名称 = 取地图名称(地图)
			}

			地图处理类:添加单位(任务id)
		end
	elseif 副本数据.大闹天宫.进行[id].进程 == 4 then
		地图 = 6032
		任务数据[fbid].战诸神 = {
			造酒仙官 = false,
			烧火童子 = false,
			运水道人 = false,
			盘槽力士 = false
		}
		local aa = {
			"造酒仙官",
			"运水道人",
			"烧火童子",
			"盘槽力士"
		}
		任务数据[fbid].战诸神.必战斗 = {
			[aa[ygsj(#aa)]] = 1
		}
	elseif 副本数据.大闹天宫.进行[id].进程 == 5 then
		任务数据[fbid].饥饿小猴 = 副本减负.大闹天宫[6]
		地图 = 6033

		for i = 1, 副本减负.大闹天宫[6] do
			任务id = id .. "_186_" .. os.time() .. "_" .. 随机序列 .. "_" .. 取随机数(1, 9999) .. i
			local xy = 地图处理类.地图坐标[地图]:取随机点()
			任务数据[任务id] = {
				名称 = "饥饿的小猴",
				结束 = 7201,
				行走开关 = true,
				模型 = "巨力神猿",
				类型 = 186,
				id = 任务id,
				起始 = os.time(),
				玩家id = id,
				队伍组 = {},
				x = xy.x,
				y = xy.y,
				方向 = 方向,
				副本id = id,
				地图编号 = 地图,
				地图名称 = 取地图名称(地图)
			}

			地图处理类:添加单位(任务id)
		end
	elseif 副本数据.大闹天宫.进行[id].进程 == 6 then
		任务数据[fbid].天兵天将 = {
			天兵 = false,
			天将 = false
		}
		地图 = 6033
		local xy = 地图处理类.地图坐标[地图]:取随机点()
		随机名称 = {
			"崩将军",
			"芭将军",
			"天兵统领",
			"天将统领"
		}
		随机模型 = {
			"巨力神猿",
			"长眉灵猴",
			"天兵",
			"天将"
		}
		local 方向 = 0

		for i = 1, #随机模型 do
			local xy = 地图处理类.地图坐标[地图]:取随机点()

			if 随机名称[i] == "崩将军" then
				xy.x = 86
				xy.y = 16
			elseif 随机名称[i] == "芭将军" then
				xy.x = 131
				xy.y = 9
			elseif 随机名称[i] == "天兵统领" then
				xy.x = 92
				xy.y = 19
				方向 = 2
			else
				xy.x = 138
				xy.y = 11
				方向 = 1
			end

			任务id = id .. "_166_" .. os.time() .. "_" .. 随机序列 .. "_" .. 取随机数(88, 99999999) .. i
			任务数据[任务id] = {
				结束 = 7201,
				类型 = 187,
				id = 任务id,
				起始 = os.time(),
				玩家id = id,
				队伍组 = {},
				名称 = 随机名称[i],
				模型 = 随机模型[i],
				x = xy.x,
				y = xy.y,
				方向 = 方向,
				副本id = id,
				地图编号 = 地图,
				地图名称 = 取地图名称(地图)
			}

			地图处理类:添加单位(任务id)
		end
	elseif 副本数据.大闹天宫.进行[id].进程 == 7 then
		任务数据[fbid].二郎惠岸 = {
			惠岸行者 = false,
			二郎真君 = false
		}
		地图 = 6033
		local xy = 地图处理类.地图坐标[地图]:取随机点()
		随机名称 = {
			"二郎真君",
			"惠岸行者"
		}
		随机模型 = {
			"二郎神",
			"净瓶女娲"
		}

		for i = 1, #随机模型 do
			local xy = 地图处理类.地图坐标[地图]:取随机点()
			任务id = id .. "_188_" .. os.time() .. "_" .. 随机序列 .. "_" .. 取随机数(88, 99999999) .. i
			任务数据[任务id] = {
				方向 = 0,
				结束 = 7201,
				类型 = 188,
				id = 任务id,
				起始 = os.time(),
				玩家id = id,
				队伍组 = {},
				名称 = 随机名称[i],
				模型 = 随机模型[i],
				x = xy.x,
				y = xy.y,
				副本id = id,
				地图编号 = 地图,
				地图名称 = 取地图名称(地图)
			}

			地图处理类:添加单位(任务id)
		end
	elseif 副本数据.大闹天宫.进行[id].进程 == 8 then
		任务数据[fbid].二郎惠岸 = {
			惠岸行者 = false,
			二郎真君 = false
		}
		地图 = 6035
		local xy = 地图处理类.地图坐标[地图]:取随机点()
		随机名称 = {
			"玉帝"
		}
		随机模型 = {
			"男人_玉帝"
		}

		for i = 1, #随机模型 do
			local xy = 地图处理类.地图坐标[地图]:取随机点()
			任务id = id .. "_189_" .. os.time() .. "_" .. 随机序列 .. "_" .. 取随机数(88, 99999999) .. i
			任务数据[任务id] = {
				y = 109,
				方向 = 0,
				x = 154,
				结束 = 7201,
				类型 = 189,
				id = 任务id,
				起始 = os.time(),
				玩家id = id,
				队伍组 = {},
				名称 = 随机名称[i],
				模型 = 随机模型[i],
				副本id = id,
				地图编号 = 地图,
				地图名称 = 取地图名称(地图)
			}

			地图处理类:添加单位(任务id)
		end
	end

	任务数据[副本数据.大闹天宫.进行[id].副本任务id].地图编号 = 地图 + 0
end

function 副本_大闹天宫:大闹锄树(id)
	local 副本id = 玩家数据[id].角色:取任务(180)

	if 任务数据[副本id].三大力士.锄树力士 < 1 then
		添加最后对话(id, "我这里已经没有任务给你了，到其他人那里看看吧！")

		return
	elseif 玩家数据[id].角色:取任务(181) ~= 0 then
		添加最后对话(id, "少侠身上已经任务，请先完成任务再来！")

		return
	elseif 玩家数据[id].队伍 ~= 0 then
		添加最后对话(id, "组队状态下无法接任务！")

		return
	end

	local 地图 = 6031
	local xy = 地图处理类.地图坐标[地图]:取随机点()
	local 任务id = "_181_" .. os.time() .. "_" .. 取随机数(1, 9999)
	任务数据[任务id] = {
		类型 = 181,
		结束 = 600,
		id = 任务id,
		起始 = os.time(),
		玩家id = id,
		队伍组 = {},
		x = xy.x,
		y = xy.y,
		地图编号 = 地图,
		地图名称 = 取地图名称(地图),
		力道 = ygsj(5),
		副本id = 任务数据[副本id].副本id
	}

	玩家数据[id].角色:添加任务(任务id)
	添加最后对话(id, format("那就请速速前往蟠桃园#Y(%s,%s)#附近处锄树清草吧！", 任务数据[任务id].x, 任务数据[任务id].y))
end

function 副本_大闹天宫:大闹浇水(id)
	local 副本id = 玩家数据[id].角色:取任务(180)

	if 任务数据[副本id].三大力士.运水力士 < 1 then
		添加最后对话(id, "我这里已经没有任务给你了，到其他人那里看看吧！")

		return
	elseif 玩家数据[id].角色:取任务(182) ~= 0 then
		添加最后对话(id, "少侠身上已经任务，请先完成任务再来！")

		return
	elseif 玩家数据[id].队伍 ~= 0 then
		添加最后对话(id, "组队状态下无法接任务！")

		return
	end

	local 目标 = {
		"一千年桃树",
		"两千年桃树",
		"三千年桃树",
		"四千年桃树",
		"五千年桃树",
		"六千年桃树",
		"七千年桃树",
		"八千年桃树",
		"九千年桃树"
	}
	目标 = 目标[取随机数(1, #目标)]
	local 地图 = 6031
	local xy = 地图处理类.地图坐标[地图]:取随机点()
	local 任务id = "_182_" .. os.time() .. "_" .. 取随机数(1, 9999)
	任务数据[任务id] = {
		类型 = 182,
		结束 = 600,
		id = 任务id,
		起始 = os.time(),
		玩家id = id,
		目标 = 目标,
		队伍组 = {},
		副本id = 任务数据[副本id].副本id
	}

	玩家数据[id].角色:添加任务(任务id)
	添加最后对话(id, format("大圣赶快前往%s处进行浇水吧！", 任务数据[任务id].目标))
end

function 副本_大闹天宫:大闹修桃(id)
	local 副本id = 玩家数据[id].角色:取任务(180)

	if 任务数据[副本id].三大力士.修桃力士 < 1 then
		添加最后对话(id, "我这里已经没有任务给你了，到其他人那里看看吧！")

		return
	elseif 玩家数据[id].角色:取任务(183) ~= 0 then
		添加最后对话(id, "少侠身上已经任务，请先完成任务再来！")

		return
	elseif 玩家数据[id].队伍 ~= 0 then
		添加最后对话(id, "组队状态下无法接任务！")

		return
	end

	local 目标 = {
		"一千年桃树",
		"两千年桃树",
		"三千年桃树",
		"四千年桃树",
		"五千年桃树",
		"六千年桃树",
		"七千年桃树",
		"八千年桃树",
		"八千年桃树",
		"九千年桃树"
	}
	目标 = 目标[取随机数(1, #目标)]
	local 地图 = 6031
	local xy = 地图处理类.地图坐标[地图]:取随机点()
	local 任务id = "_183_" .. os.time() .. "_" .. 取随机数(1, 9999)
	任务数据[任务id] = {
		类型 = 183,
		结束 = 600,
		id = 任务id,
		起始 = os.time(),
		玩家id = id,
		目标 = 目标,
		队伍组 = {},
		副本id = 任务数据[副本id].副本id
	}

	玩家数据[id].角色:添加任务(任务id)
	添加最后对话(id, format("那就清速速前往%s处修整蟠桃树吧！", 任务数据[任务id].目标))
end

return 副本_大闹天宫
